Docusaurus V3でローカル検索を動作させる
機能確認として、幾つものあるドキュメント管理CMSのうち、docusaurusに触る機会がありました。10/31にversion3が出たばかりで、コミュニティプラグインも対応が進んでいる最中です。
基本機能やバージョン指定のないプラグインについては滞りなく確認が行えたものの、検索はほぼversion2指定となっており、version3で動かせないものかとソースコード含めて追っていました。
丁度先日Fork版検索用プラグイン側でVersion3で動かすためのIssueがCloseしたため、実際に機能させるためのアレコレをやってみました。
セットアップ
ライブラリの依存設定へ追記が必要です。それ以外はversion2での設定と変わりません。
package.jsonにoverridesを追加します。依存がversion2に向くのを防ぎます。
"overrides": { "@docusaurus/core": "3.0.0", "@docusaurus/theme-common": "3.0.0" },
必要に応じてdocusaurus.config.jsにindex対象を設定します。
module.exports = { // ... plugins: [ [ require.resolve("@easyops-cn/docusaurus-search-local"), { // Options here indexDocs: true, language: "ja", }, ], ], }
あとはversion2と同じくプラグインのインストール後、build
で静的ファイル生成を行ってserve
で実行します。
% npm install @easyops-cn/docusaurus-search-local .. added 11 packages, and audited 1255 packages in 2s 295 packages are looking for funding run `npm fund` for details 16 moderate severity vulnerabilities To address issues that do not require attention, run: npm audit fix Some issues need review, and may require choosing a different dependency. Run `npm audit` for details. % npm run docusaurus build .. ✔ Client ✔ Server Compiled successfully in 13.05s ✔ Client ● Server █████████████████████████ cache (99%) shutdown IdleFileCachePlugin stored [Local Search] [INFO]: Gathering documents [Local Search] [INFO]: Parsing documents [Local Search] [INFO]: 2 indexes will be created. [Local Search] [INFO]: Building index default (4 documents) [Local Search] [INFO]: Building index docs-default-current (102 documents) [Local Search] [INFO]: Index default written to disk [Local Search] [INFO]: Index docs-default-current written to disk [SUCCESS] Generated static files in "build". [INFO] Use `npm run serve` command to test your build locally. % npm run docusaurus serve
あとがき
修正点判明後の対応が本当に早かったため、優先してのfixだったと予想できます。Fork版v0.37.1でversion3対応となりました。オリジナル版でもoverride指定を入れることで動作することを確認しています。
費用面でAlgoliaが使えず、TypeSenseは設定が上手くいかない場合における、数少ない選択肢になりそうです。